package com.example.demo.dao;

import com.example.demo.pojo.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

import javax.transaction.Transactional;

/**
 * @author 刘二朋
 * @date 2020-11-27 15:32
 */
//增加事务的注解
@Transactional
//User类的repository接口 , 用于对user类的数据 , 进行操作
public interface UserRepository extends JpaRepository<User, Object> {

    /**
     * 根据用户的 账号 ,密码 , 来进行查询  , 该用户 . 是否存在
     *
     * @param id       用户的账号
     * @param password 用户的密码
     * @return 返回查询到的用户的对象
     */
    User findByIdAndPassword(String id, String password);


    /**
     * 根据id , 来修改用户的昵称
     *
     * @param id   要进行修改的用户的账号
     * @param name 要进行修改的昵称
     * @return 返回修改后的结果
     */
    @Modifying
    @Query(value = " update user set name=?2 where id=?1", nativeQuery = true)
    int updataNameInId(String id, String name);

    /**
     * 根据id , 来修改用户的密码
     *
     * @param id       要进行修改的用户的账号
     * @param password 要进行修改的密码
     * @return 返回修改后的结果
     */
    @Modifying
    @Query(value = " update user set password=?2 where id=?1", nativeQuery = true)
    int updataPassInId(String id, String password);

    /**
     * 根据id , 来修改用户的密码
     *
     * @param id     要进行修改的用户的账号
     * @param avater 要进行修改的密码
     * @return 返回修改后的结果
     */
    @Modifying
    @Query(value = " update user set avater=?2 where id=?1", nativeQuery = true)
    int updataAvaterInId(String id, String avater);


}
